package com.gxy.learn.design.model.behaviour.state;

import lombok.extern.slf4j.Slf4j;

/**
 * @description: 电梯运行状态类
 * @author: gaoxueyong
 * @Date: 2022/11/8 17:07
 */
@Slf4j
public class RunningState extends LiftState{
    /**
     * 开门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void open() {
//        正在运行的的电梯是开门的？ 太危险 故不操作
    }

    /**
     * 关门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void close() {
//        运行中的电梯门是关着的，故不作操作
    }

    /**
     * 运行
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void run() {
        log.info("电梯正在运行。。。");
    }

    /**
     * 停止
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void stop() {
//        运行中的电梯可以进行停止，要不然谁还敢做
        super.context.setLiftState(Context.STOPING_STATE);
        super.context.stop();
    }
}
